// 函数名是大写则视为构造函数
// function CEO(name,sex){
//     this.name = name;
//     this.sex = sex;
//     console.log('未来的CEO们, 加油');
// }
//CEO();   作为普通函数来运行
var zw_gg = new CEO('陈紫薇','女');  //作为一个类来运行
var cw = new CEO('陈维','男');
var yy = CEO('亚宇','男');
console.log(zw_gg.name,zw_gg.sex,cw.name,cw.sex);
console.log(yy);   //作为普通函数运行，没有return(返回值)
//  new在这个过程中的功能:
// 1.  {}新建一个空的对象  
//     再把函数运行一下，上下文环境是this--> 生成的对象
// 2.  将它返回
console.log(zw_gg.constructor) //constructor用来初始化对象
console.log(zw_gg instanceof CEO) //instanceof实例化对象
cw.hobbies = ['读书'];
//const xz = {};   //默认的原型对象是Object
const xz = new Object();   //这里的Object是函数，函数也是对象
console.log(xz);  //任何函数都可以有一个prototype属性
Object.prototype.toSay = function(){
    console.log(`hi,刘印大佬`);
}
// xz.toSay;
xz.__proto__ = cw;
cw.toSay = function(){
    console.log('江西老表都来滴滴吧')
}
xz.toSay;
console.log(xz.hobbies)
